1. Field of the Invention
The present invention relates to cryptographic systems and methods used for electronic communication of messages over a computer network, such as the Internet, and particularly to hash functions with elliptic polynomial hopping that provide greater security for electronic communications than conventional hash functions.
2. Description of the Related Art
Cryptographic hash functions have many applications in electronic communications over a computer network. Such hash functions are sometimes referred to as “cryptographic checksums.” The cryptographic hash functions compresses a plaintext message of any length to a message digest (number) or hash value of fixed bit length. The hash value can then be encrypted with a secret key and sent with the plaintext or encrypted plaintext message. The receiver of the communication can apply the same hash function to the received message compute a hash value and apply the secret key to decrypt the received hash value. If the hash value computed for the received message is the same as the decrypted hash value, the genuineness and authenticity of the message are confirmed.
Since the hash value is much shorter and therefore quicker to encrypt than the complete plaintext message, hash functions are often used for digital signatures. Hash functions may also be used to encrypt messages, and are sometimes used for verification of passwords, e.g., in UNIX systems, and in various other cryptographic applications for electronic communications.
Hash functions should meet certain requirements to ensure security. It should be possible to compute the message digest or hash value quickly. Hash functions should be deterministic, i.e., the message m and hash function H should produce one and only one hash value y=H(m). A hash function should be a one-way function, i.e., given a message m and a hash function H so that the hash value or message digest y=H(m), it should be computationally infeasible to reconstruct the message m from the hash value y; indeed, given the hash value y, it should be computationally infeasible to find any message m′ so that hash function H produces y=H(m′) (preimage resistance). Further, it should be computationally infeasible to find two messages m1≠m2 so that hash function H produces H(m1)=H(m2) (weakly collision-free or second preimage resistant). For some applications, it is also desirable that it be computationally infeasible to find any two messages so that H(m1)=H(m2) (strongly collision-free).
The most commonly used hash functions include the MDx class, such as MD5, the SHA class, including SHA-1, and the RIPEMD function, e.g., the RIPEMD-160 hash function. Such hash functions rely upon sequential and iterated structures, block ciphers, or computationally hard problems involving integer factorization. Recently, however, concerns have been raised concerning the security of such hash functions, as successful attacks on either the overall hash function or the compression function, or collisions with the hash values, have been reported.
Thus, hash functions with elliptic polynomial hopping solving the aforementioned problems is desired.